#include "IMEIApp.h"

void CIMEIApp::GetIMEI(TDes& aIMEI)
{
    CIMEIApp* self= new (ELeave) CIMEIApp(aIMEI);
    CleanupStack::PushL(self);
    self->ConstructL();
    CleanupStack::PopAndDestroy(self);
}

void CIMEIApp::ConstructL()
{
    iTelephony = CTelephony::NewL();
    CActiveScheduler::Add(this);

    iTelephony->GetPhoneId(iStatus, iPhoneIdV1Pckg);
    SetActive();
    CActiveScheduler::Start();
}

CIMEIApp:: CIMEIApp(TDes& imei): CActive(EPriorityStandard),IMEI(imei),iPhoneIdV1Pckg(iPhoneIdV1)
{
    //default constructor
}

CIMEIApp::~CIMEIApp()
{
    delete iTelephony;
    iTelephony = NULL;
}

void CIMEIApp::RunL()
{
    if(iStatus==KErrNone)
    {
    IMEI= iPhoneIdV1.iSerialNumber;
    CActiveScheduler::Stop();
    }
}

void CIMEIApp::DoCancel()
{
    iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
}
